/**
 * libnlog -- User friendly logging system with network support.
 *
 * Copyright (C) 2011
 * 	Samuel Nussbaum <samuel (dot) nussbaum (at) e-robot.ch>
 *
 * This library is free software; you can redistribute it and/or modify it under the terms of the
 * GNU Lesser General Public License as published by the Free Software Foundation; either version 3
 * of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this
 * library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301 USA
 */
#ifndef __NLOG_TYPES_H__
#define __NLOG_TYPES_H__

#include <string>
#include <sstream>

namespace boost {
	class mutex;
	class thread;
	template <class K, class T, class H, class P, class A> class unordered_map;
	template <class T, class H, class P, class A> class unordered_set;
	namespace posix_time {
		class ptime;
	}
}

namespace nlog {
	typedef size_t SizeT;
	typedef ::std::string String;
	typedef ::std::ostream OStream;
	typedef ::std::ostringstream OStringStream;
	typedef ::boost::mutex Mutex;
	typedef ::boost::thread Thread;
	typedef ::boost::posix_time::ptime Time;

	enum LevelEnum {
		Finest,
		Finer,
		Fine,
		Info,
		Config,
		Warning,
		Error,
		None
	};
}


#endif /* __NLOG_TYPES_H__ */
